package com.entity.yaml

import com.PushType
import com.annotations.DefaultValue
import io.github.stream29.jsonschemagenerator.Description
import kotlinx.serialization.Serializable

/**
 * 运行环境配置
 */
@Serializable
data class RunEnvironment(
    /**
     * 运行命令
     */
    @property:Description("运行命令")
    val name: String,
    /**
     * 执行完程序是否清理缓存
     *
     * 默认`false`
     */
    @property:Description("执行完程序是否清理缓存，默认false")
    @DefaultValue("false")
    var clearCache: Boolean = false,

    /**
     * 是否打开统计
     *
     * 默认`false`
     */
    @property:Description("是否打开统计，默认false")
    @DefaultValue("false")
    var openAnalytics: Boolean = false,
    /**
     * 是否要上传
     *
     * 默认`false`
     */
    @property:Description("是否要上传，默认false")
    @DefaultValue("false")
    var isUpload: Boolean = false,
    /**
     * 上传方式
     */
    @property:Description("上传方式")
    @DefaultValue("SFTP")
    val pushType: PushType = PushType.SFTP,
    /**
     * 是否压缩所有的js资源
     */
    @property:Description("是否启动压缩js资源")
    @DefaultValue("false")
    val compreeJs: Boolean = false,
    /**
     * 额外忽略列表
     *
     * @see java.nio.file.FileSystem.getPathMatcher
     */
    @property:Description("额外忽略列表 @see java.nio.file.FileSystem.getPathMatcher")
    var ignoreList: Set<String> = emptySet()
)